/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package edu.ucue.ptc.gco.ngc;

import edu.ucue.ptc.gco.dao.UsuarioDAOLocal;
import edu.ucue.ptc.gco.mdl.Usuario;
import edu.ucue.ptc.gco.util.AtributoInvalidoException;
import edu.ucue.ptc.gco.util.ValidarAtributoUtil;
import java.util.List;
import javax.ejb.Stateful;
import javax.inject.Inject;

/**
 *
 * @author CHRISTIAN
 */

@Stateful
public class UsuarioManager implements UsuarioManagerLocal{
    @Inject
    private UsuarioDAOLocal usuarioDAO;
    
    @Override
    public void crearUsuario(Usuario usuario) throws AtributoInvalidoException{  
        ValidarAtributoUtil.validarStringNuloVacio("nombre",usuario.getNombre());
        ValidarAtributoUtil.validarStringNuloVacio("password",usuario.getPassword());
        usuarioDAO.crearUsuario(usuario);
    }

    @Override
    public List<Usuario> listarUsuario() {
        return usuarioDAO.listarTodosUsuario();
    }    
    

    @Override
    public void actualizarUsuario(Usuario usuario) throws AtributoInvalidoException{
        ValidarAtributoUtil.validarStringNuloVacio("nombre",usuario.getNombre());
        ValidarAtributoUtil.validarStringNuloVacio("password",usuario.getPassword());
        usuarioDAO.actualizarUsuario(usuario);
    }

    @Override
    public void eliminarUsuario(Usuario usuario) {
        usuarioDAO.eliminarUsuario(usuario);
    }

    @Override
    public Usuario obtenerUsuarioPorId(int idUsuario) {
        return usuarioDAO.obtenerUsuarioPorId(idUsuario);
    }
    
    @Override
    public List<Usuario> listarUsuarioWhere(String where){
        return usuarioDAO.listarUsuarioWhere(where);
    }
    
    @Override
    public void existeUsuario(String nombre,String password) throws AtributoInvalidoException {
        if (nombre==null || password==null || nombre.equals("") || password.equals("")){
            throw new AtributoInvalidoException("Usuario",nombre,"EL USUARIO O CONTRASEÑA SON INCORRECTOS");
            
        }
        List<Usuario> lusuario=usuarioDAO.listarUsuarioWhere(" where o.nombre='"+nombre+"' and o.password='"+password+"'");
        if (lusuario==null || lusuario.isEmpty()){
            throw new AtributoInvalidoException("Usuario",nombre,"EL USUARIO O CONTRASEÑA SON INCORRECTOS");
        }
    }
   public int verificarUsuario(String nombre,String password) {
        if (nombre==null || password==null || nombre.equals("") || password.equals("")){
            return -1;
        }
        List<Usuario> lusuario=usuarioDAO.listarUsuarioWhere(" where o.nombre='"+nombre+"' and o.password='"+password+"'");
        if (lusuario==null || lusuario.isEmpty()){
            return -1;
        }
        else
        {
            return lusuario.get(0).getIdUsuario();
        }
    }
}
